﻿//#define _CRT_SECURE_NO_WARNINGS
////简单的写法 - 暴力查找
////KMP算法 - 在字符串中找字符串- 更加高效，实现和理解也更复杂
////如果有兴趣，下去可以研究下
//#include <stdio.h>
//#include <string.h>
////在一串字符串里面找字符串第一次出现位置
////返回第一次出现第一个字符位置，%s打印从这里之后的字符哦
////找不到返回NULL
//char* my_strstr(const char* p1, const char* p2)
//{
//	//记录调整位置
//	const char* ret = p1;
//	//记录判断字符一样的移动指针
//	const char* pc1 = NULL;
//	const char* pc2 = NULL;
//	if (*p2 == '\0')		//找空字符串的时候
//		return (char*)p1;
//	while (*ret)		//直到调整指针ret移动到"\0’为止
//	{
//		//每次开始查找
//		pc1 = ret;		//pc1移动到调整位置
//		pc2 = p2;		//pc2移动到开始位置
//		while (*pc1 == *pc2&& *pc1 != '\0' && *pc2 != '\0')	//出现相等开始查找而且都不能同时为\0
//		{
//			pc1++;
//			pc2++;
//		}
//		if (*pc2 == '\0' )		//pc2移动完，判断一样了
//		{
//			return (char*)ret;			//找到啦，返回ret调整指针记录的出现初始位置
//		}
//		ret++;		//每次结束，调整指针往后移动一位
//	}
//	return NULL;//找不到
//}
//int main()
//{
//	char arr1[] = "this is an apple\n";
//	//const char* p = "Appl";
//	char arr2[] = "is";
//	char* ret = my_strstr(arr1, arr2);
//
//	if (ret != NULL)
//	{
//		printf("%s\n", ret);			//is an apple
//	}
//	else
//	{
//		printf("找不到\n");
//	}
//
//	return 0;
//}